package org.fatewa.engine.experimental.poi;


import org.springframework.context.ApplicationContext;

/**
 * 转换 Excel 的接口
 *
 * @author fatewa
 * <T> 实体类型
 */
public interface WorkBookIntermediary<T> {

    /**
     * 将实体转换为媒介对象
     *
     * @param domain 实体
     * @return 媒介对象
     */
    default WorkBookIntermediary<T> transfer(T domain) {
        return transfer(domain, null);
    }

    /**
     * 对于需要获取其他 Bean 进行辅助转换的情况，也可以使用 context 进行获取
     *
     * @param domain  实体
     * @param context Spring 上下文对象
     * @return 媒介对象
     */
    WorkBookIntermediary<T> transfer(T domain, ApplicationContext context);
}
